part of 'page.dart';

abstract class _SingleCollectionPageWlocState {}

class _DefaultState extends Equatable implements _SingleCollectionPageWlocState {
  const _DefaultState({
    required this.collection,
    required this.collectionLexicalItemModels,
    required this.knownLexicalItemSelectionPermitted,
    required this.lexicalItemAdditionPermitted,
    required this.collectionRepetitionProgresses,
    required this.unspecifiedLexicalItemExists,
  });

  final Collection collection;
  final BuiltList<_DefaultStateLexicalItemModel> collectionLexicalItemModels;
  final bool knownLexicalItemSelectionPermitted;
  final bool lexicalItemAdditionPermitted;
  final BuiltList<double>? collectionRepetitionProgresses;
  final bool unspecifiedLexicalItemExists;

  @override
  List<Object?> get props {
    return [
      collection,
      collectionLexicalItemModels,
      knownLexicalItemSelectionPermitted,
      lexicalItemAdditionPermitted,
      collectionRepetitionProgresses,
      unspecifiedLexicalItemExists,
    ];
  }
}

class _KnownLexicalItemSelection extends Equatable implements _SingleCollectionPageWlocState {
  const _KnownLexicalItemSelection({
    required this.unspecifiedCollectionLexicalItemModels,
  });

  final BuiltList<_KnownLexicalItemSelectionLexicalItemModel>
      unspecifiedCollectionLexicalItemModels;

  @override
  List<Object?> get props {
    return [
      unspecifiedCollectionLexicalItemModels,
    ];
  }
}

class _LexicalItemRemoval extends Equatable implements _SingleCollectionPageWlocState {
  const _LexicalItemRemoval({
    required this.collectionLexicalItemModels,
    required this.allLexicalItemSelected,
  });

  final BuiltList<_LexicalItemRemovalLexicalItemModel> collectionLexicalItemModels;
  final bool allLexicalItemSelected;

  @override
  List<Object?> get props {
    return [
      collectionLexicalItemModels,
      allLexicalItemSelected,
    ];
  }
}

class _CustomCollectionRenaming extends Equatable implements _SingleCollectionPageWlocState {
  const _CustomCollectionRenaming({
    required this.collection,
    required this.collectionLexicalItemModels,
    required this.knownLexicalItemSelectionPermitted,
    required this.lexicalItemAdditionPermitted,
    required this.collectionRepetitionProgresses,
    required this.unspecifiedLexicalItemExists,
  });

  final CustomCollection collection;
  final BuiltList<_CustomCollectionRenamingLexicalItemModel> collectionLexicalItemModels;
  final bool knownLexicalItemSelectionPermitted;
  final bool lexicalItemAdditionPermitted;
  final BuiltList<double>? collectionRepetitionProgresses;
  final bool unspecifiedLexicalItemExists;

  @override
  List<Object?> get props {
    return [
      collection,
      collectionLexicalItemModels,
      knownLexicalItemSelectionPermitted,
      lexicalItemAdditionPermitted,
      collectionRepetitionProgresses,
      unspecifiedLexicalItemExists,
    ];
  }
}
